Time-Adaptive Control of Television Viewing Functionality

ABSTRACT

A method for providing television functionality includes defining a time period, associating a user preference with the time period, providing a first result in accordance with the user preference if a request for television functionality is received during the defined time period, and providing a second result if the request for the television functionality is received outside the defined time period.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of copending U.S. utility applicationentitled, “TIME-ADAPTIVE CONTROL OF TELEVISION VIEWING FUNCTIONALITY,”having Ser. No. 10/015,270, filed Dec. 11, 2001, which is entirelyincorporated herein by reference.

FIELD OF THE INVENTION

This invention relates in general to television systems, and moreparticularly, to functionality provided by set-top boxes.

BACKGROUND OF THE INVENTION

Subscriber television systems are now capable of providing many servicesin addition to analog broadcast video. In implementing enhancedprogramming, the home communication terminal (“HCT”), otherwise known asthe settop box, has become an important computing device for accessingvarious video services. In addition to supporting traditional analogbroadcast video functionality, digital HCTs (or “DHCTs”) now alsosupport an increasing number of two-way digital services such asvideo-on-demand.

A DHCT is typically connected to a cable or satellite television networkand includes hardware and software for providing various services andfunctionality. Preferably, some of the software executed by a DHCT isdownloaded and/or updated via the cable television network. The abilityto download software provides flexibility in adding or updatingapplications executed by the DHCT. Each DHCT also typically includes aprocessor, communication components and memory, and is connected to atelevision. While many conventional DHCTs are stand-alone devices thatare externally connected to a television, a DHCT and/or itsfunctionality may be integrated into a television or personal computer,as will be appreciated by those of ordinary skill in the art.

One problem with typical DHCTs is that they are not very responsive toan individual user's demands. For example, in television systems thatprovide hundreds of services, locating desired television programs canrequire many keystrokes by the viewer and can consume significantamounts of time. Furthermore, different users may have differentpreferences regarding the information that may be presented via anelectronic program guide (EPG), and these preferences may vary from timeto time. Therefore, it should be appreciated that there is a need forimproved systems and methods that address these and/or other problemsassociated with providing desirable television functionality.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention can be better understood with reference to the followingdrawings. The components in the drawings are not necessarily drawn toscale, emphasis instead being placed upon clearly illustrating theprinciples of the present invention. In the drawings, like referencenumerals designate corresponding parts throughout the several views.

FIG. 1 is a high-level block diagram depicting a non-limiting example ofa subscriber television system.

FIG. 2 is a high-level block diagram depicting selected components ofthe DHCT and headend depicted in FIG. 1.

FIG. 3 is a block diagram illustrating a non-limiting example ofselected components stored in system memory depicted in FIG. 2.

FIG. 4 depicts a non-limiting example of a remote control device that isused to provide user input to the DHCT.

FIG. 5 depicts a non-limiting example of an IPG screen that illustratesa program guide arrangement in a time format.

FIG. 6 depicts a non-limiting example of a general settings screen thatmay be presented to a viewer in response to the activation of thesettings key depicted in FIG. 4.

FIG. 7 depicts a non-limiting example of an IPG configuration screenthat may be presented to a viewer in response to the selection of theprogram guide option via the general settings screen depicted in FIG. 6.

FIG. 8 depicts a non-limiting example of a service type selection screenthat may be presented to a viewer after the selection of the servicetype option depicted in FIG. 7.

FIG. 9 depicts a non-limiting example of a timing preference screen thatmay be presented to a viewer in response to viewer selection of one ormore new television setting(s) such as for example, an IPG or a serviceinstance type setting.

FIG. 10 depicts a non-limiting example of a time factor screen that maybe presented to a viewer in response to the selection of an option viathe timing preference screen depicted in FIG. 9.

FIG. 11 depicts a non-limiting example of a beginning month selectionscreen that may be presented to a viewer in response to the selection ofthe multiple time factors option or the date option depicted in FIG. 10.

FIG. 12 depicts a non-limiting example of a beginning date selectionscreen that may be presented to a viewer in response to the selection ofa beginning month option via the beginning month selection screendepicted in FIG. 11.

FIG. 13 depicts a non-limiting example of an ending month selectionscreen that may be presented to a viewer in response to the selection ofa beginning date option via the beginning date selection screen depictedin FIG. 12.

FIG. 14 depicts a non-limiting example of an ending date selectionscreen that may be presented to a viewer in response to the selection ofan ending month option via the ending month selection screen depicted inFIG. 11.

FIG. 15 depicts a non-limiting example of a continuity of settingsscreen that may be presented to a viewer in response to the selection ofan ending date option via the ending date selection screen depicted inFIG. 14.

FIG. 16 depicts a non-limiting example of a day selection screen thatmay be presented to a viewer in response to the selection of theday-of-week option depicted in FIG. 10 or of a continuity of settingsoption via the continuity of settings screen depicted in FIG. 15.

FIG. 17 depicts a non-limiting example of an hour selection screen thatmay be presented to a viewer in response to the selection of thetime-of-day option depicted in FIG. 10 or a day option via the dayselection screen depicted in FIG. 16.

FIG. 18 depicts a non-limiting example of a service instance typeselection screen that may be presented to a viewer in response to theselection of the service instance type option depicted in FIG. 7.

FIG. 19 depicts a non-limiting example of a sport type selection screenthat may be presented to a viewer in response to the selection of asports option shown in FIG. 18.

FIG. 20 depicts a non-limiting example of a service selection screenthat may be presented to a viewer in response to the selection of theservice identity option depicted in FIG. 7.

FIG. 21 is a flow chart depicting a non-limiting example of an IPGroutine for providing an IPG that meets viewer specifications.

FIG. 22 depicts a non-limiting example of a remote control configurationscreen that may be presented to a viewer in response to the selection ofthe remote control option depicted in FIG. 6.

FIG. 23 depicts a non-limiting example of a service navigationconfiguration screen that may be presented to a viewer in response tothe selection of one of the remote control configuration options, anddepicted in FIG. 22.

FIG. 24 is a flow chart depicting a non-limiting example of a servicenavigation routine for providing a service that meets viewerspecifications.

FIG. 25 depicts a non-limiting example of a parental controlconfiguration screen that may be presented to a viewer in response tothe selection of the parental control option depicted in FIG. 6.

FIG. 26 depicts a non-limiting example of a block screen that may bepresented to a viewer in response to the selection of the block optiondepicted in FIG. 25.

FIG. 27 is a flow chart depicting a non-limiting example of a servicenavigation routine for blocking a television service.

FIG. 28 is a flow chart depicting a non-limiting example of a DHCTactivation routine for activating a DHCT depicted in FIG. 2.

FIG. 29A depicts a non-limiting example of a layout for a preferenceentry screen.

FIG. 29B depicts a non-limiting example of a preference entry screenthat may be used by a viewer to provide viewer preferences regardingcertain types of programs during various time periods.

FIG. 29C depicts a non-limiting example of a preference entry screenthat illustrates one possible approach for indicating viewerpreferences.

FIG. 30A is a block diagram depicting a non-limiting example of apreference tracking database.

FIG. 30B is a block diagram depicting a non-limiting example of apreference tracking database where the viewing parameters representtelevision services and the time periods represent time periods during aday.

FIG. 30C is a block diagram depicting a non-limiting example of apreference tracking database where the viewing parameters representtypes of television services and the time periods represent days of theweek.

FIG. 30D is a block diagram depicting a non-limiting example of apreference tracking database where the viewing parameters representtelevision instances and the time periods represent months.

FIG. 30E is a block diagram depicting a non-limiting example of apreference tracking database where the viewing parameters representtypes of television instances and the time periods represent days of theweek.

FIG. 31 is a flow chart depicting a non-limiting example of a viewerpreference tracking routine that can be used to track a viewer's viewingpreferences.

FIG. 32 is a flow chart depicting steps taken in providing a viewer withan IPG in response to user input.

FIG. 33 is a flow chart depicting steps taken in providing a viewer witha different service in response to user input.

FIG. 34 is a flow chart depicting steps taken in providing a viewer witha PVR list in response to user input.

FIG. 35 is a flow chart depicting a non-limiting example of steps takenby the DHCT in recording a television service based on user preferences.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The preferred embodiments of the present invention now will be describedmore fully hereinafter with reference to the accompanying drawings.These embodiments are examples, among others, of systems and methods ofthe present invention. Therefore, the present invention, which may beembodied in many different forms, should not be construed as limited tothe embodiments set forth herein.

FIG. 1 is a block diagram depicting a non-limiting example of asubscriber television system (STS) 100. In this example, the STS 100includes a headend 110 and a DHCT 200 that are coupled via a network130. The DHCT 200 is typically situated at a user's residence or placeof business and may be a stand-alone unit or integrated into anotherdevice such as, for example, the display device 140 or a personalcomputer (not shown). The DHCT 200 receives signals (video, audio and/orother data) from the headend 110 through the network 130 and providesany reverse information to the headend 110 through the network 130. Thenetwork 130 may be any suitable means for communicating televisionservices data including, for example, a cable television network or asatellite television network, among others. The headend 110 may includeone or more server devices (not shown) for providing video, audio, andtextual data to client devices such as DHCT 200. The headend 110 and theDHCT 200 cooperate to provide a user with television functionalityincluding, for example, television programs, an interactive programguide (IPG), and/or video-on-demand (VOD) presentations. The televisionservices are provided via the display device 140, which is typically atelevision set. However, the display device 140 may also be any otherdevice capable of displaying video images including, for example, acomputer monitor. A television service may also be provided, in part orin full, via audio speakers.

FIG. 2 is a high-level block diagram depicting selected components ofthe DHCT 200 and headend 110 depicted in FIG. 1. The DHCT 200 andheadend 110 described herein are merely illustrative and should not beconstrued as implying any limitations upon the scope of the presentinvention. For example, an embodiment of the invention may beimplemented using a DHCT comprising additional, fewer, and/or differentcomponents. Furthermore, an embodiment of the invention may also beimplemented using a satellite receiver or an analog set-top box.

The DHCT 200 preferably includes a communications interface 220 forreceiving signals (video, audio and/or other data) from the headend 110.The DHCT 200 further includes at least one processor 240 for controllingoperations of the DHCT 200, an output system 280 for driving the displaydevice 140, and a tuner system 250 for tuning to a particular televisionservice to be displayed and for sending and receiving various types ofdata or media to/from the headend 110. The tuner system 250 includes, inone implementation, an out-of-band tuner and transmitter forbi-directional data communication using, for example, quadrature phaseshift keying (QPSK), and a quadrature amplitude modulation (QAM) tunerfor receiving broadcast television signals and data. A receiver 260receives externally generated user inputs or commands from an inputdevice such as, for example, a remote control device.

The DHCT 200 also includes a personal video recorder (PVR) module 290for recording television instances. The PVR module 290 may incorporateelectronic, magnetic, optical, and/or other types of storage media forstoring the recorded television instances. The DHCT 200 may also includean analog video decoder to decode and digitize the video and audioassociated with a broadcast analog channel. The PVR module 290 mayinclude a compression engine to compress the data of a decoded anddigitized analog channel prior to storage. Although shown as residingwithin the DHCT 200, the PVR module 290 may alternatively be locatedoutside the DHCT 200.

The DHCT 200 may include one or more wireless or wired interfaces (notshown), also called ports, for receiving and/or transmitting data toother devices. For instance, the DHCT 200 may feature a USB (UniversalSerial Bus), an Ethernet port (for connection to a computer), anIEEE-1394 connection (for connecting to consumer electronics equipment),a serial port, a parallel port, a radio frequency (RF) interface, and/oran infra-red (IR) interface. In this manner, user inputs may, forexample, be provided via a computer, via buttons or keys located on theexterior of the DHCT 200, via a hand-held remote control device, and/orvia a keyboard that includes user-actuated keys, etc.

With additional reference to FIG. 2, FIG. 3 is a block diagramillustrating selected components stored in the system memory 300 of theDHCT 200. The system memory 300 described herein is merely illustrativeand should not be construed as implying any limitations upon the scopeof the present invention. In one implementation, system memory 300includes flash memory 302 and dynamic random access memory (DRAM) 304for storing various applications, modules and data for execution and useby the processor 240. Basic functionality of the DHCT 200 is provided byan operating system 340 that is primarily stored in flash memory 302.The operating system 340 includes at least one resource manager 350 thatprovides an interface to and coordination of resources of the DHCT 200such as, for example, computing resources.

One or more programmed software applications, herein referred to asapplications, are executed by utilizing the computing resources in theDHCT 200. Applications stored in flash memory 302 or DRAM 304 areexecuted by processor 240 under the auspices of the operating system340. Data required as input by an application is stored in DRAM 304 orflash memory 302 and read by processor 240 as needed during the courseof the application's execution. Input data may be data stored in DRAM304 by a secondary application or other source, either internal orexternal to the DHCT 200, or possibly anticipated by the application andthus created with the application at the time it was generated as asoftware application, in which case it is stored in flash memory 302.Data generated by an application is stored in DRAM 304 by processor 240during the course of the application's execution.

An application referred to as navigator 360 is also resident in flashmemory 302 for providing a navigation framework for services provided bythe DHCT 200. The navigator 360 registers for and in some cases reservescertain user inputs related to navigational keys such as channelup/down, last channel, favorite channel, etc. The client applicationsmay be resident in flash memory 302 or downloaded into DRAM 304.

The flash memory 302 also contains a platform library 310. The platformlibrary 310 is a collection of utilities useful to applications, such asa timer manager, a compression manager, an HTML parser, a databasemanager, a widget toolkit, a string manager, and other utilities (notshown). These utilities are accessed by applications via applicationprogramming interfaces (APIs) as necessary so that each application doesnot have to contain these utilities. Two components of the platformlibrary 310 that are shown in FIG. 3 are a window manager 330 and aservice application manager (SAM) client 320.

The window manager 330 provides a mechanism for implementing the sharingof the screen regions and user input. The window manager 330 is alsoresponsible for, as directed by one or more applications, implementingthe creation, display, and allocation of the limited DHCT 200 screenresources. Window manager 330 allows multiple applications to share thescreen by assigning ownership of screen regions, or windows. Windowmanager 330 communicates with resource manager 350 to coordinateavailable resources (such as display memory) among differentresource-consuming processes. Such processes may be directly orindirectly invoked by one or more applications. The window manager 330also maintains, among other things, a user input registry 365 in DRAM304 so that when a user enters a key or a command via a remote controldevice or another input device such as a keyboard or mouse, the userinput registry 365 may be accessed to determine which of variousapplications running on the DHCT 200 should receive data correspondingto the input key and in which order. As an application is executed, itregisters a request to receive certain user input keys or commands. Whenthe user presses a key corresponding to one of the commands on theremote control device, the command is received by the receiver 260 andrelayed to the processor 240. The processor 240 dispatches the event tothe operating system 340 where it is forwarded to the window manager330. The window manager 330 then accesses the user input registry 365and routes data corresponding to the incoming command to the appropriateapplication.

The SAM client 320 is a client component of a client-server pair ofcomponents, with the server component being located on the headend 110(FIG. 1). A SAM database 322 in DRAM 304 includes a data structure ofservices that are created and updated by the headend 110. Manytelevision services can be defined using the same application component,with different parameters. Television services include, withoutlimitation and in accordance with one implementation, the presentationof television broadcast programs, video-on-demand (VOD), music or otheraudio data, and interactive program guides (IPG). In general, theidentification of a service includes the identification of an executableapplication that provides the service along with a set ofapplication-dependent parameters that indicate to the application theservice to be provided. As a non-limiting example, a service ofpresenting a television instance could be executed with a set ofparameters to view HBO or with a separate set of parameters to view CNN.Each association of the application component (tune video) and oneparameter component (HBO or CNN) represents a particular service thathas a unique service I.D.

Application clients can be downloaded into DRAM 304 at the request ofthe SAM client 320, typically in response to a request by the user or inresponse to a message from the headend. In this non-limiting example,DRAM 304 contains a PVR application 355, an interactive program guide(IPG) application 370, a video-on-demand (VOD) application 380, and apreference engine application 390. It should be clear to one withordinary skill in the art that these applications are not limiting andmerely serve as examples for this present embodiment of the invention.Furthermore, one or more DRAM based applications may, as an alternativeembodiment, be resident in flash memory 302. These applications, andothers provided by a subscriber television system operator, are softwareentities for providing services to the user.

The preference engine 390 monitors a user's or household's televisionviewing preferences by keeping track of viewing parameters correspondingto services that the DHCT 200 presents. A viewing parameter may be atelevision service, a type of television service, a television instance,or a type of television instance, among others. A viewing parameter mayalso be a service instance's assigned rating such as the ratingsignifying the intended audience. As used herein, a service instance isa service presentation such as, for example, a television program (orepisode) or a VOD movie. In one embodiment, by retrieving informationfrom DRAM 304 and from an internal timer 393, a preference engine 390keeps track of viewing parameters in relation to the time of day, i.e.the “clock time.” The preference engine 390 stores information in DRAM304 according to the tracking procedures it performs. In anotherembodiment, the preference engine 390 also keeps track of viewingparameters in relation to the time of week, e.g., Monday, Tuesday,Wednesday, Thursday, Friday, Saturday, Sunday, Weekday (Monday-Friday),or Weekend (Saturday and Sunday). In yet another embodiment, thepreference engine 390 also keeps track of viewing parameters in relationto the time of year (e.g., calendar date). By keeping track of theextent to which various television services, types of televisionservices, service instances, and types of service instances arepresented in relation to time of day, time of week, and/or time of theyear, the preference engine 390 facilitates the provision of improvedtelevision services to the user. Such improved services may include, forexample, the provision of customized IPGs, service navigation, andservice instance recording.

In one embodiment, the preference engine 390 keeps track of viewingparameters through the use of one or more preference tracking databases391. Although referred to as a “database”, a preference trackingdatabase 391 may comprise data structures that are not stored in adatabase format. A preference tracking database 391 contains data thatreflect the extent to which a DHCT 200 presents various televisionservices during one or more time periods. In one embodiment, apreference tracking database 391 keeps track of the duration and/orfrequency that a DHCT 200 presents services having certain viewingparameters. For example, a preference tracking database 391 may containscores that are correlated to the duration and/or frequency that a DHCT200 presents services having certain viewing parameters. One or morepreference look-up tables 392 may be created in memory based on datacollected in connection with a user or household's viewing preferences.Such data may be based on, for example, a preference tracking database391 or user input that expressly indicates user preferences. In oneembodiment, the preference look-up tables 392 are created by thepreference engine 390 and contain viewing parameters that are associatedwith respective time periods. The viewing parameters may be televisionservices, types of television services, service instances, types ofservice instances, service instance ratings, and/or respective contentparameters, among others. A content parameter may be used to explicitlyspecify the presence of violence, offensive language, and sexual contentin a service instance, for example. These parameters may be retrievedfrom IPG database 375 stored in DRAM 304, and may be part of a serviceinstance's information. Each time period may represent a time of day, atime of week, a time of year, or a combination thereof (e.g., 1:00 p.m.to 2:00 p.m. on Sunday in January). In one embodiment, a preferencelook-up table 392 contains a plurality of rows where each rowcorresponds to a respective daily time period. In one possibleimplementation, each row corresponds to a half-hour time period. Inanother possible implementation, a plurality of preference look-uptables 392 corresponding to a plurality of respective weekdays are used.For example, one preference look-up table 392 may be used for each ofthe seven days of the week. Alternatively, one preference look-up table392 may be used for a group of days such as Monday through Friday,another for weekend days, such as Saturday and Sunday, and yet anotherfor holidays.

In an alternative embodiment, look-up tables may be created by a userduring a configuration or customization procedure without the assistanceof preference engine 390. The preference engine may functionautonomously thereafter or until the subscriber conducts anotherconfiguration or customization procedure. In yet another embodiment, apreference engine 390 is not included in the DHCT 200.

A person with ordinary skill in the art will understand that there aremany different methods of arranging and storing data. A preferencelook-up table 392 is not necessarily stored in a table format; it is,however, presented here in a table format for illustrative purposes. Thefollowing table represents a non-limiting example of some of theinformation that may be contained in a preference look-up table 392 inaccordance with one embodiment of the invention. TABLE 1 Example ofpreference look-up table for types of service instances 1:00 a.m. to2:00 a.m. MOVIES 2:00 a.m. to 3:00 a.m. MOVIES 3:00 a.m. to 4:00 a.m.MOVIES 4:00 a.m. to 5:00 a.m. MOVIES 5:00 a.m. to 6:00 a.m. MOVIES 6:00a.m. to 7:00 a.m. NEWS 7:00 a.m. to 8:00 a.m. NEWS 8:00 a.m. to 9:00a.m. CARTOONS 9:00 a.m. to 10:00 a.m. CARTOONS 10:00 a.m. to 11:00 a.m.CARTOONS 11:00 a.m. to 12:00 p.m. CARTOONS 12:00 p.m. to 1:00 p.m.SOAP-OPERAS 1:00 p.m. to 2:00 p.m. SOAP-OPERAS 2:00 p.m. to 3:00 p.m.SOAP-OPERAS 3:00 p.m. to 4:00 p.m. TALK-SHOWS 4:00 p.m. to 5:00 p.m.TALK-SHOWS 5:00 p.m. to 6:00 p.m. TALK-SHOWS 6:00 p.m. to 7:00 p.m. NEWS7:00 p.m. to 8:00 p.m. SIT-COMS 8:00 p.m. to 9:00 p.m. SIT-COMS 9:00p.m. to 10:00 p.m. SPORTS 10:00 p.m. to 11:00 p.m. SPORTS 11:00 p.m. to12:00 a.m. MOVIES 12:00 a.m. to 1:00 a.m. MOVIES

In the example shown in table 1, each time period is associated with atype of service instance. In an alternative embodiment, each time periodin a preference look-up table 392 may be associated with multipleviewing parameters that are ranked based on a score corresponding to auser's or household's viewing time and/or viewing frequency of serviceshaving such viewing parameters. In an alternative embodiment in whichthe subscriber customizes viewing preferences for specific time periods,each preference look-up table 392 may be associated with one or more TVservices, but where each service is only associated with one look-uptable.

Each entry in a look-up table associated with a period of time maycomprise multiple preferences or specifications for that entry. Thenumber of viewing parameters may differ from a first entry to a secondentry. Each entry can have an independent number of viewing parametersassociated with it. As a non-limiting example, the flexibility toassociate any number of viewing parameters in each entry is provisionedby implementing a link-list structure for its set of viewing parameters.

Multiple preference look-up tables 392 may be used for looking updifferent combinations of viewing parameters and time periods. Forexample another preference look-up table 392 may be used to look uptelevision service preferences based on the day of the week.Alternatively, a separate look-up table contains information forlocating a look-up table corresponding to a respective day of the week.In an alternative embodiment a multidimensional preference look-up table392, possibly implemented with link lists as described above, may beused to look up multiple types of viewing parameters associated withmultiple types of time periods.

In one implementation, applications executing on the DHCT 200 work withthe navigator 360 by abiding by several guidelines. First, anapplication utilizes the SAM client 320 for the provision, activation,and suspension of services. Second, an application shares DHCT 200resources with other applications and abides by the resource managementpolicies of the SAM client 320, the operating system 340, and the DHCT200. Third, an application conforms to situations where shared resourcesare only accessible via the navigator 360. Fourth, when an applicationloses service authorization while providing a service, the applicationsuspends the service via the SAM client 320 (the navigator 360 willreactivate an individual service application when it later becomesauthorized). Finally, an application client is designed to not haveaccess to certain user input keys reserved by the navigator 360 (e.g.,power, channel +/−, volume +/−, etc.).

Data and software used in providing a DHCT service to a user may bestored in one or more of the following memory resources: a data storagedevice located at a headend, a data storage device located at a customerpremises, a non-volatile memory internal to the DHCT 200, and/or a harddrive internal to the DHCT 200. For example, an executable program oralgorithm corresponding to an operating system (OS) component, or to aclient platform component, or to a client application (e.g., IPGapplication 370), or to respective parts thereof, may reside in and/orexecute out of DRAM 304 and/or flash memory 302, or may reside in alocal storage device connected to DHCT 200 and may be transferred intoDRAM 304 for execution. Likewise, data input for an executable programor algorithm may reside in DRAM 304 or in flash memory 302, or mayreside in a local storage device connected to the DHCT 200 and may betransferred into DRAM 304 for use by an executable program or algorithm.In addition, data output by an executable program or algorithm may bewritten into DRAM 304 by the executable program or algorithm and may betransferred to flash memory 302 or to a local storage device for storagepurposes. It should be noted, however, that the present invention is notlimited by where or how any data and/or applications are stored orretrieved.

The IPG application 370 has a data gathering mechanism, or daemon 377,running continuously as a background task to receive IPG data intendedto reside in the DRAM 304. IPG daemon 377 receives IPG datacorresponding to a time-window and stores such IPG data for apre-specified period of time in the DRAM 304. This mechanism can beemployed at power-up and/or during periodic updates that, for instance,occur at pre-determined times (such as midnight). The IPG data updatescan also occur upon change to the data on an IPG server 111 andsubsequent notification to the client that new data is available.

Transmission of data packets containing a time specification from theheadend 110 helps the DHCT 200 to synchronize its clock and keep trackof time and intervals. In one implementation, a timer in the DHCT 200can count down to a time that initiates processor 240 to signal the IPGdaemon 377 background task to retrieve transmitted IPG data. DHCT 200can receive IPG data, for instance, as a BFS file transmitted via a BFSserver 112 either as an in-band or out-of-band transmission, or both.Hence, an IPG server 111 in communication with the BFS server 112 canpackage an IPG database into files and transfer them to the BFS server112 for downstream transmission.

IPG data typically spans service instance information for a completeservice line-up, be it hundreds or possibly thousands of services, for apre-specified time-window (e.g., 14 or 30 days). An individual service(e.g., NBC, Video-On-Demand, Email) is typically associated with eachservice. Since the duration of service instances vary, for example,typically from 30 minutes to 210 minutes, a service could possibly offer48 service instances per day, as an example.

As a non-limiting example, IPG data comprises data organized intodatabase records or other data structures. The IPG data records comprisefields containing information such as service instance titles, serviceinstance descriptions, service instance content descriptions, serviceinstance genre, service instance release years, casts or performerslists, ratings information, play duration, and/or links to additionalrespective service instance related information such as service instancepreviews and critic's reviews and comments. In another embodiment,service instance information may include a price for a service renderinga service instance as well as an effective window of time and/orcalendar days in which the service is purchasable.

The IPG database 375 contains information for the presentation ofavailable service instances at the current time and for subsequentperiods throughout a time-window into the future designated to besupported by IPG application 370. Part of the IPG data may be retainedat the IPG server 111 for on-demand requests by a DHCT. Such is the casefor Service Instance Long Descriptions that would require excessive DHCT200 memory for storage, especially in light of the large number ofservice instances provided by a large service line-up over multipledays. The remainder of the IPG data is intended to reside in the DHCT200 and is broadcast via one or more downstream data services, possiblyone or more in-band transmission channels or out-of-band (OOB)transmission channels.

A user's request for a service instance information (e.g., a program'sLong Description) stored in an IPG server 111 at the headend 110generates a signal that is transmitted from the DHCT 200 to the IPGServer 111. The IPG server 111 transmits the requested service instanceinformation via one or more downstream data services and the DHCT 200conveniently downloads the information through its communicationsinterface 220.

As time progresses, the IPG database 375 is updated due to one ofvarious possible reasons such as: service instance data becomes obsoleteas an IPG time-window “shifts” in pre-specified time-increments into thefuture; TV stations or other services (e.g., digital music services) mayalter their service instance offering due to one of many possiblereasons (e.g., NBC overrides a scheduled program to transmit aPresident's State of the Union address); or a change in the serviceline-up.

IPG application 370 functionality includes database managementcapabilities in which database records can be stored in DRAM 304 or someother storage device. The IPG server 111 in communication with IPGapplication 370 effects updates to the IPG database 375 stored in DRAM304 on a regular or periodic basis. IPG application 370 receivesinformation on the IPG database 375 transmitted by IPG server 111through the communications interface 220 and invokes its databasemanagement functionality to store received IPG database 375 in a sectionof DRAM 304. The IPG application 370 is preferably a programmed softwareapplication executed by utilizing the computer resources in the DHCT200. An executable program is stored in DRAM 304 and executed byprocessor 240 under the auspices of the real-time operating system.Thus, data required as input by the IPG application 370 is stored inDRAM 304 and read by processor 240 from DRAM 304 as need be during thecourse of the application's execution. IPG application 370 reads IPGdatabase records and processes them into displayable representations aspart of a graphical user interface (GUI) presentation displayed on thedisplay device 140.

In one embodiment, configuration manager 397 working in communicationwith general settings application 396 allows a user to select andcustomize the user's control of TV functionality, including displayableinformation retrieved from IPG database 375, for one or more timeperiods. In this way the user can customize the extent of TVfunctionality and/or of IPG information displayed to the user's liking.A user can customize TV functionality and/or displayable IPG informationto adaptively change over time. The customization of time-adaptivefunctionality can be indefinite until a user overrides an existingselection in the future or until a period of time expires according tothe user's customization. In one embodiment in which preference engine390 exists and is allowed to function, the user's customization may bealtered in the future by preference engine 390.

Customizable information further includes the configuration and layoutof an IPG screen for different time periods in addition to the IPGinformation. Displayable IPG information for each of a plurality of timeperiods can be customized by service identity, service instance type,service type, service instance rating, and/or service instance content,among others. Other configurable aspects of IPG information pertain towhich applications are permitted to present IPG information during eachrespective time period. For instance, since IPG information isaccessible by WatchTV 398 to populate fields in a service banner duringservice changes, and within the fields of a displayed service guide'spresentation, the user may customize or limit the IPG information thatapplications can retrieve from IPG database 375 and display duringcertain time periods or intervals.

Each of the above mentioned applications and functions mentionedthroughout preferably comprise executable instructions for implementinglogical functions and can be embodied in any computer-readable mediumfor use by or in connection with an instruction execution system,apparatus, or device, such as a computer-based system,processor-containing system, or other system that can fetch and executethe instructions. In the context of this document, a “computer-readablemedium” can be any means that can contain, store, communicate,propagate, or transport an application for use by or in connection withthe instruction execution system, apparatus, or device. The computerreadable medium can be, for example but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, device, or propagation medium. More specific examples (anon-exhaustive list) of the computer-readable medium would include thefollowing: an electrical connection (electronic) having one or morewires, a portable computer diskette (magnetic), a random access memory(RAM) (electronic), a read-only memory (ROM) (electronic), an erasableprogrammable read-only memory (EPROM or Flash memory) (electronic), anoptical fiber (optical), and a portable compact disc read-only memory(CDROM) (optical). Note that the computer-readable medium could even bepaper or another suitable medium upon which an application is printed,as the application can be electronically captured, via for instanceoptical scanning of the paper or other medium, then compiled,interpreted or otherwise processed in a suitable manner, and then storedin a computer memory.

FIG. 4 depicts a non-limiting example of a remote control device 400that may be used to provide user input to the DHCT 200. The remotecontrol device 400 described herein is merely illustrative and shouldnot be construed as implying any limitations upon the scope of thepresent invention. Four arrow keys 410 are provided including an uparrow key 411, a down arrow key 412, a left arrow key 413, and a rightarrow key 414. The arrow keys 410 can be used to scroll throughon-screen options and/or to highlight an on-screen option, whereas theselect key 420 may be used to select a currently highlighted option. Theguide key 480 may be used to access a television program guide such as,for example, IPG 500 (FIG. 5). The function of the “A” key 471, the “B”key 472, and the “C” key 473 varies depending on the screen beingpresented to a user at the time of the key's activation. For example, inone embodiment of the present invention, the “A” key 471 can be used toconfirm a selection, the “B” key 472 can be used to return to apreviously displayed screen, and the “C” key 473 can be used to cancel arequest. Other remote control elements function as follows: a PVR key495 may be used to request a list of video recordings that are stored inthe PVR module 290 (FIG. 2); a remote control status switch 490 may beused to determine whether the DHCT 200 will operate in a preferenceadaptive mode whereby DHCT functionality is responsive to predetermineduser preferences, as will be described in greater detail below; thefavorites key may be used to request a list of favorite televisionservices; the settings key 460 may be used to request a general settingsscreen such as, for example, general settings screen 600 (FIG. 6); andthe cable power key 401 may be used to activate the DHCT 200.

In an alternative embodiment, different and/or additional methods ofproviding user input may be used including, for example, a remotecontrol device having different keys and/or key layouts, a keyboarddevice, a voice activated input system, a touch-screen display, etc. Theinvention described herein is not limited by the type of device used toprovide user input. As a non-limiting example, the functionality of thearrow keys 410 may be provided via a disc-shaped key (not-shown) wherebylocations on the disc-shaped key correspond to respective directions ona display screen.

With additional reference to FIGS. 1-4 throughout the remaining figuredescriptions, FIG. 5 depicts a non-limiting example of an IPG screen 500that illustrates an initial program guide arrangement in a time format.IPG screen 500 may be presented by the DHCT 200 (FIG. 2) in response touser input that is provided via, for example, the activation of theguide key 480 (FIG. 4). The top left portion of IPG screen 500 is adetailed focus area 510 that includes detailed television serviceinformation (e.g., television channel number, television channel name(ABC), program name, program description, duration, any episodeinformation or rating, etc.) for a service instance displayed in thehighlighted service instance area 520 in a main service instance displayarea 560. The fields in the detailed focus area 510 are populated withinformation read from IPG database 375 in DRAM 304 by IPG clientapplication 370.

A television service which the DHCT 200 is currently providing (which istypically the service instance occupying the full screen before the useris presented with IPG screen 500) is displayed in a video area 530.Immediately below the video area 530 is an information banner 540depicting the television service, which the DHCT 200 is currentlyproviding (e.g., channel 5), the current day and date (e.g., Thursday,January 18), and the current time (e.g., 5:00 p.m.). The date and timinginformation are retrieved from internal clock information stored insystem memory 300. The displayed TV service information is retrievedfrom IPG database 375 stored in DRAM 304.

The main service instance display area 560 contains a listing oftelevision instance titles corresponding to television instances thatare or will be available for viewing during the time periods listedunder the time area 570 and that correspond to respective televisionservices identified in television service area 580. Service instanceinformation displayed via IPG screen 500 is read from IPG database 375in DRAM 304 by IPG client 370 to populate respective fields in thedisplayed presentation. The television service area 580 includes avertical list of television services organized sequentially from top tobottom by increasing television service number (except for the lowestnumbered television service which is typically listed immediately belowthe highest numbered television service). In one embodiment, the arrowbuttons 410 can be used to scroll through the main service instancedisplay area 560 and to highlight a desired service. As a user scrollsin time across a calendar day boundary, the day and date indicationsdisplayed in various areas are automatically updated. The correspondingdisplayed IPG fields are also updated by retrieving their respectiveinformation from IPG database 375.

Though other implementations are contemplated within the scope of thepresent invention, when the IPG application is first activated by theuser, the lowest numbered television service listing in the televisionservice lineup is typically centered in the television service area 580.In this non-limiting example, the lowest numbered television service inthis television service list displayed in the television service area580 is ABC®, which is shown as television channel 2. Continuing withthis non-limiting example, the left-most time column in the main serviceinstance display area 560 is set to include titles of service instancesscheduled to be broadcast about two hours into the future with themiddle title in the column being highlighted and corresponding to aservice instance on the lowest numbered television service. Therefore,in this example, the service instance ABC News® 520, which will be onABC® (television channel 2), is centered in the highlighted serviceinstance area 520. It should be noted that the current service instanceshown in video area 530 and referenced in information banner 540,corresponds to a currently tuned television service, which in thisexample is television channel 5, and not to the highlighted serviceinstance on television channel 2.

The bottom area 550 of IPG screen 500 indicates the selected day forwhich service instance data is being displayed as well as informationabout the current functions of the “A”, “B”, and “C” keys on the remotecontrol 400. In this example, the “A”. “B”, and “C” keys function asfollows: the A key 471 can be used to access a browse-by list forrequesting an IPG screen that contains a subset of television instancesfalling under a user selected browse-by category such as, for example,comedy, drama, action/adventure, sports, etc., as typically provisionedby service instance information stored in IPG database 375; the B key472 can be used to request an IPG screen containing service instancelistings for a user selected date; and the C key 473 can be used toinitiate a process for re-configuring the content of an initial IPGscreen.

In an alternative embodiment of the present invention, an IPG may havefewer, greater, or different components. For example, in one embodimentan IPG may not include the detailed focus area 510, the video area 530,the information banner 540, and/or the bottom area 550. In yet anotherembodiment, an IPG may have time listings that are arranged verticallyand television service listings that are arranged horizontally. One ofordinary skill in the art will understand that various IPGconfigurations are possible within the scope of the present invention,either indefinitely or by time periods as customized by a subscriberduring a configuration procedure.

FIG. 6 depicts a non-limiting example of a general settings screen 600that may be presented to a user in response to the activation of thesettings key 460 (FIG. 4). General settings menu 610 includes a remotecontrol option 620, a program guide option 630, and a parental controloption 640. The general settings options 620, 630, and 640 may be usedto configure a remote control, a program guide and a parental controlfeature, respectively. Information section 690 provides informationabout the currently highlighted option, which in this example is theprogram guide option 630. As in other examples below, a user may use thearrow keys 410 to highlight a desired option and the select key 420 inorder to select a currently highlighted option. In an alternativeembodiment, a general settings screen may contain different and/oradditional options such as, for example, an option to select a secondaudio program (SAP).

FIG. 7 depicts a non-limiting example of an IPG configuration screen 700that may be presented to a user in response to the selection of theprogram guide option 630 (FIG. 6). IPG configuration menu 710 includes aprogram type option 720, a channel type option 730, and a channelidentity option 740. The IPG configuration options 720, 730, and 740 maybe used to configure the television service listings in an IPG based onselected service instance types, television service types, andtelevision service identities, respectively. In another embodiment, anIPG configuration screen 700 may contain different and/or additionaloptions such as, for example, an option to configure the time listingsthat are to be presented in an initial IPG screen. An initial IPG screenis an IPG screen that is presented to a user in response to user inputthat is received by the DHCT 200 while the user is not being presentedwith an IPG. User input requesting an IPG may be provided by activatingfor example, the guide key 480. In one embodiment, time periods in aninitial IPG screen include one corresponding to the current time as wellas subsequent consecutive periods in the future. The user can configurethe IPG not to show any information for certain time periods in aninitial IPG screen and/or other IPG screens.

FIG. 8 depicts a non-limiting example of a television channel typeselection screen 800 that may be presented to a user in response to theselection of the channel type option 730 (FIG. 7). In one embodiment, achannel type refers to a service that typically features only a certaintype of service instance (e.g., sports channel ) and/or that has acertain characteristic (e.g., broadcast channel). In an alternativeembodiment, a channel type corresponds to a type of service instanceactive at a particular time period in a service, as identified by a“program type” field in a program's information in IPG database 375.

Television channel type menu 810 includes a broadcast option 820, asports option 830, and an adult option 840. The channel type options820, 830, and 840 may be used to determine the television servicelistings in an initial IPG screen. A user may use the arrow keys 410(FIG. 4) in order to access additional options by scrolling up or downthe television channel type menu. In another embodiment of theinvention, a television channel type selection screen 800 may containdifferent and/or additional channel type options such as, for example,music, news, shopping, foreign, etc. A channel type option that isselected from the television channel type menu is added to an activeselection list 850. After the user completes the selection process, theuser can provide additional input via the remote control 400 confirminghis selections. Such input may be provided via, for example, the “A” key471 (FIG. 4).

FIG. 9 depicts a non-limiting example of a timing preference screen 900that may be presented to a user in response to the selection of one ormore new television setting(s) such as, for example, a channel typeoption from the channel type menu 810 (FIG. 8). The timing preferencescreen 900 includes timing preference options 910 and 920; the firstoption 910 may be selected by the user if the user wants the newlyselected television setting(s) to be implemented only during certaintime periods; the second option 920 may be selected by the user if theuser wants the newly selected television setting(s) to be implementedfor an indefinite period of time.

FIG. 10 depicts a non-limiting example of a time basis screen 1000 thatmay be presented to a user in response to the selection of the firstoption 910 from the timing preference screen 900 (FIG. 9). A time basismenu 1010 includes time basis options 1011-1014 for determining a timebasis for implementing the newly selected television setting(s). In thisexample, time bases options include time of day 1011, day of the week1012, date 1013, and multiple time bases 1014. An instruction section1090 provides instructions to the user in connection with the currentscreen. In this example, the instruction section 1090 states “SELECT THETIME BASIS TO BE USED IN DETERMINING WHEN THE NEW TV SETTINGS WILL BEIMPLEMENTED.”

FIG. 11 depicts a non-limiting example of a beginning month selectionscreen 1100 that may be presented to a user in response to the selectionof the multiple time bases option 1014 or the date option 1013 from thetime basis screen 1000 (FIG. 10). A beginning month menu 1110 includesmonth selections 1111-1115 that may be used to select a month duringwhich the newly selected television setting(s) are to take effect. Auser can scroll up or down the beginning month menu in order to view orselect additional month options (not shown). In another embodiment, thebeginning month menu 1110 may initially display additional and/ordifferent month options such as, for example, options corresponding tothe months of January through April, October through December, orJanuary through December.

FIG. 12 depicts a non-limiting example of a beginning date selectionscreen 1200 that may be presented to a user in response to the selectionof a beginning month option via the beginning month selection screen1000 (FIG. 11). A beginning date selection grid 1210 includes dateselections that may be used to select a date during which the newlyselected television setting(s) are to take effect. A user can activatethe arrow keys 410 in order to highlight a desired date, and can thenselect the highlighted date by activating the select key 420. In analternative embodiment, the user may specify a date by entering acorresponding number via, for example, the number pad 450 on the remotecontrol device 400 (FIG. 4).

FIG. 13 depicts a non-limiting example of an ending month selectionscreen 1300 that may be presented to a user in response to the selectionof a beginning date option via the beginning date selection screen 1200(FIG. 12). An ending month menu 1310 includes month selections 1311-1315that may be used to select a month during which the newly selectedtelevision setting(s) are to expire. A user can scroll up or down theending month menu in order to view or select additional month options(not shown). In another embodiment, the ending month menu 1 310 mayinitially display additional and/or different month options such as, forexample, options corresponding to the months of January through April,respectively.

FIG. 14 depicts a non-limiting example of an ending date selectionscreen 1400 that may be presented to a user in response to the selectionof an ending month option via the ending month selection screen 1100(FIG. 11). An ending date selection grid 1410 includes date selectionsthat may be used to select a date during which the newly selectedtelevision setting(s) are to take effect. A user can activate the arrowkeys 410 in order to highlight a desired date, and can then select thehighlighted date by activating the select key 420. In an alternativeembodiment, the user may specify a date by entering a correspondingnumber via, for example, the number pad 450 on the remote control device400 (FIG. 4).

FIG. 15 depicts a non-limiting example of a continuity of settingsscreen 1500 that may be presented to a user in response to the selectionof an ending date option via the ending date selection screen 1400 (FIG.14). The continuity of settings screen provides a user with an option ofimplementing the newly selected television settings on a yearly basisduring an interval that covers a period that corresponds to the periodselected via the month and date selection screens 1100-1400 depicted inFIGS. 11-14, respectively. For example, if the user selects the timeperiod August 17-January 18 via the selections screens 1100-1400, thenthe user can select the second option 1520 in order to request that thenewly selected television settings be implemented during current andsubsequent August 17-January 18 time periods.

FIG. 16 depicts a non-limiting example of a day selection screen 1600that may be presented to a user in response to the selection of theday-of-week option 1012 (FIG. 10) or of a continuity of settings optionvia the continuity of settings screen 1500 (FIG. 15). A day selectionmenu 1610 includes day options 1611-1617 that may be used to select theday or days during which the newly selected television setting(s) are tobe implemented. In this example, the user may request that the newlyselected television settings be implemented on holidays, on weekdays(Monday through Friday), on weekends (Saturday and Sunday), or on all 7days of the week by selecting option 1611, 1612, 1613, or 1614respectively. Alternatively, the user may request that the newlyselected television settings be implemented on a selected day byselecting a corresponding day option (e.g., option 1615 for Monday). Auser can scroll up or down the day selection menu in order to view orselect additional day options (not shown). In another embodiment, theday selection menu 1610 may display fewer, additional and/or differentoptions such as, for example, an option corresponding to holidays andweekends.

FIG. 17 depicts a non-limiting example of an hour selection screen 1700that may be presented to a user in response to the selection of thetime-of-day option 1011 (FIG. 10) or a day option via the day selectionscreen 1600 (FIG. 16). A starting time selection field 1710 and anending time selection field 1720 may be used to specify a starting timeand an ending time, respectively, for a time period during which thenewly selected television setting(s) are to be implemented. In oneembodiment, a user can use the right and left arrow keys 413 & 414 inorder to highlight a selection field, the up and down arrow keys 411 &412 in order to designate a desired time, and the select key 420 inorder to select the desired time as shown in the highlighted selectionfield. In an alternative embodiment, a user can use the number pad 450(FIG. 4) in order to designate starting and ending times.

FIG. 18 depicts a non-limiting example of a program type selectionscreen 1800 that may be presented to a user in response to the selectionof the program type option 720 (FIG. 7). Program type menu 1810 includesa comedy option 1820, a sports option 1830, and an adult option 1840.The program type options 1820, 1830, and 1840 may be used to determinethe type of service instances listed in an initial IPG screen. A usermay use the arrow keys 410 (FIG. 4) in order to access additionaloptions by scrolling up or down the program type menu. In anotherembodiment, a program type selection screen 1800 may contain differentand/or additional program type options such as, for example, news,drama, soap opera etc. A program type option that is selected from theprogram type menu is added to an active selection list 1850. After theuser completes the selection process, the user can provide additionalinput via the remote control 400 confirming his selections. In thisexample, such input may be provided via the “A” key 471 (FIG. 4).

FIG. 19 depicts a non-limiting example of a sport type selection screen1900 that may be presented to a user in response to the selection of thesports option 1830 (FIG. 18). A sport type selection menu 1910 includessport type options 1911-1913 that may be used to determine the serviceinstance listings in an initial IPG screen. In one embodiment, onlytelevision instances corresponding to one or more sport type optionsselected by the user are subsequently presented in an initial IPGscreen. A user may use the arrow keys 410 (FIG. 4) in order to accessadditional options by scrolling up or down the sport type selection menu1910. In this example, the sport type selection menu 1910 includes golf1911, college basketball 1912, college football 1913, all sports 1914,NFL (National Football League) 1915, MLB (Major Baseball League) 1916,and NBA (National Basketball Association) 1917. In another embodiment, asport type selection menu 1910 may contain different and/or additionalsport type options such as, for example, college baseball, tennis, NHL(National Hockey League), etc. A sport type option that is selected fromthe sport type menu is added to an active selection list 1990.

FIG. 20 depicts a non-limiting example of a channel selection screen2000 that may be presented to a user in response to the selection of thechannel identity option 740 (FIG. 7). Television channel menu 2010includes channel options that may be used to determine the televisionservice listings in an initial IPG screen. A user may use the arrow keys410 (FIG. 4) in order to access additional options by scrolling up ordown the television channel menu. In another embodiment, a channelselection menu 2010 may contain different and/or additional channeloptions such as, for example, VOD, PPV, MSNBC, BBC, ESPN2, etc. Achannel option that is selected from the television channel menu 2010 isadded to an active selection list 2050. After the user adds the desiredchannel options to the active selection list 2050, the user can confirmhis selection by, for example, activating the “A” key 471 (FIG. 4). Achannel option may allow a selected service and its IPG information tobe included in the IPG presentation, to be enabled for selectable “TVcontrol” functionality, and/or for its IPG information to be displayedby other applications, indefinitely or until modified again by the user.Furthermore, a channel option allows a service to be enabled for one ormore selected time periods, regardless of service instance content andservice instance attributes during the respective time periods selectedby the subscriber.

Examples of selectable TV control functionality that can be enabledindefinitely or during selected time periods include tuning to aspecific service, providing an IPG screen, recording a service, andpurchasing products or services via a television service. Other TVcontrol functionality may include functionality of remote control keysfor selected time periods or enabling and disabling respective remotecontrol keys.

As a non-limiting example of a selectable “TV control” functionalityusing a channel option, a subscriber may select an option for limitingthe tuning to a television service (e.g., Nickelodeon) to only certaintime periods (e.g., during 7:00 to 8:00 a.m., Monday through Fridays,and from 8:00 a.m. to 9:00 p.m. on Saturdays and Sundays). Thesubscriber may also opt via the channel option to allow the IPGinformation in IPG database 375 pertaining to the respective televisionservice to always be accessible via IPG application 370. Furthermore,the subscriber may enable, as a selectable “TV control” functionalityusing the channel option, the initiation of a recording of a serviceinstance of the respective television service via an IPG screen,regardless of whether the respective television service is enabledduring the period that the service instance is transmitted. Therecording of a television service may be initiated responsive to theactivation of the record key 435 when the service or correspondingservice instance is highlighted in an IPG screen.

Each TV control functionality and DHCT application may be responsive toactivation information stored in a look-up table dedicated to therespective functionality or application. Programmed software executingin processor 240, such as operating system 340, SAM client 320 ornavigator 360, that enact a TV control functionality or invoke anapplication to execute on processor 240, access activation informationfrom the corresponding look-up table prior to the activation of thefunctionality or application. According to the accessed informationcorresponding to the TV control functionality or application, activationof a functionality or application is implemented if a current time entryin the respective look-up table authorizes such activation.

Each time entry in a look-up table may comprise multiple specificationfields associated with each respective time period that describe thescope of a subscriber's customization for that time period. Thus, inaddition to a field in the look-up table specifying an indicationwhether an application or TV control functionality is “enabled” or“disabled” for activation purposes, additional fields associated with atime period may specify other information that limits asub-functionality or data presentation in association with therespective time period. The limits for the allowed sub-functionality ordata presentation in a time period may be identified based on what isauthorized and/or what is not authorized.

The additional fields associated with an “enabled” time period specifythe limits on sub-functionality or data that can be displayed duringthat respective time period. However, regardless of whether afunctionality or application is disabled for a first time period, alook-up table may comprise additional information that specifies limitsfor data to be retrieved and/or displayed during a second time intervalfor which an application is “enabled”. As a non-limiting example, theIPG application 370 may be enabled for certain time periods for which itcan retrieve information from IPG database 375. Therefore, during anenabled time period, IPG application 370 can be activated by thesubscriber to display information for time periods in which the IPGapplication itself is disabled as an application.

In one embodiment, an authorization look-up table 394 contains an entrythat specifies a “yes” or “no” flag for determining whether eachrespective executable application or TV control functionality isauthorized to adapt to user preferences. The user preferences may bedetermined by the preference engine 390 and/or as a result of a userconfiguration performed during a customization procedure.

FIG. 21 is a flow chart depicting a non-limiting example of an IPGroutine 2100 for providing an IPG that meets user specifications. Theroutine 2100 may be part of IPG application 370 (FIG. 3) and may beinitiated in response to the DHCT 200 (FIG. 2) receiving user inputrequesting an IPG. The user input may be provided via the activation ofa designated remote control key such as, for example, the guide key 480.After the routine 2100 is initiated in step 2101, the routine 2100determines in step 2102 whether the IPG application 370 is authorized toadapt to user preferences. If the IPG application 370 is not authorizedto adapt to user preferences, then the IPG application 370 provides theuser with an IPG having default characteristics as indicated in step2103, and the routine 2100 terminates as indicated in step 2106.However, if the IPG application 370 is authorized to adapt to userpreferences, then the IPG application 370 provides the user with an IPGthat is adapted to user preferences, as indicated in step 2105, and theroutine 2100 terminates as indicated in step 2106. The IPG application370 may use a preference look-up table 392 to obtain a specification forthe subset of service instance information in IPG database 375 that isenabled for access and display for the current time period in accordancewith user preferences. When user input causes IPG application 370 todisplay IPG data corresponding to time periods other than the currenttime period, IPG application 370 displays information for those othertime periods according to the limits in their respective specificationin a preference lookup table 392.

FIG. 22 depicts a non-limiting example of a remote control configurationscreen 2200 that may be presented to a user in response to the selectionof the remote control option 620 (FIG. 6). Remote control configurationmenu 2210 includes a first option 2220 for configuring the functionalityof the favorites key 430, a second option 2230 for configuring thefunctionality of the channel +/− key 440, and a third option 2240 forconfiguring the functionality of the favorites key 430 and the channel+/− key 440. In an alternative embodiment, a user may be provided withadditional and/or different options for configuring aspects of theremote control device 400. Such additional and/or different options mayinclude, for example, an option for enabling or disabling the record key435 (FIG. 4).

FIG. 23 depicts a non-limiting example of a channel navigationconfiguration screen 2300 that may be presented to a user in response tothe selection of the channel +/− key option 2230 (FIG. 22). Channelnavigation configuration menu 2310 includes a program type option 2320,a channel type option 2330, and a channel identity option 2340. Theservice navigation configuration options 2320, 2330, and 2340 may beselected to configure the operation of the channel +/− key 440 (FIG. 4)based on user selected service instance types, television service types,and television service identities, respectively. In one embodiment, theselection screens that are presented in response to the selection ofoption 2320, 2330, or 2340 are similar to selection screens 1800 (FIG.18), 800 (FIG. 8), and 2000 (FIG. 20), respectively. In this manner auser may configure the operation of the channel +/− key 440 such thatonly certain television services, types of television services, or typesof service instances are presented to the user in response to theactivation of the channel +/− key 440. In another embodiment, a servicenavigation configuration screen 2300 may contain different and/oradditional options such as, for example, an option to configure theoperation of the channel +/- key 440 based on a user's televisionviewing habits. Settings for determining the operation of the channel+/− key 440 may be implemented continuously or only during certain timeperiods as determined by user input such as, for example, as providedvia the screens depicted in FIGS. 9-17.

FIG. 24 is a flow chart depicting a non-limiting example of a servicenavigation routine 2400 for providing a television service that meetsuser specifications. The routine 2400 may be part of the navigatorapplication 360 (FIG. 3) and may be initiated in response to the DHCT200 (FIG. 2) receiving user input requesting another television service.The user input may be provided via the activation of a servicenavigation key such as, for example, the channel +/− key 440 (FIG. 4).After the routine 2400 is initiated in step 2401, the routine 2400determines in step 2402 if user specifications for service navigationduring the current time period are stored in memory as explained above.If such user specifications are not stored in memory, then the routine2400 initiates in step 2403 the provision of the next availablesequential television service (up or down depending on the user'srequest), and the routine terminates in step 2404. If, however, userspecifications for the current time period are stored in memory, thenthe routine initiates in step 2405 the provision of a television servicein accordance with the user specifications, and then terminates in step2406. The user specifications for service navigation may have beensolicited via, for example, one or more of the screens depicted in FIGS.9-20, 22, and 23, and may include information that directly orindirectly identifies television services that are to be provided inresponse to the activation of a service navigation key during userdefined time periods.

FIG. 25 depicts a non-limiting example of a parental controlconfiguration screen 2500 that may be presented to a user in response tothe selection of the parental control option 640 (FIG. 6). Remotecontrol configuration menu 2510 includes a first option 2520 forpreventing unauthorized use of the DHCT 200, and a second option 2530for blocking certain television services from being presented tounauthorized users. Unauthorized use of the DHCT 200 may be implementedby requiring that a valid personal identification number (PIN) beentered by a user every time that the DHCT 200 is turned on. Similarly,access to blocked television services may only be provided in responseto an entry of a valid PIN. In another embodiment, authorized users maybe identified in another manner such as, for example, via the entry of avalid password or via speech or fingerprint recognition. Parentalcontrol settings may be implemented continuously or only during certaintime periods as determined by user input such as, for example, asprovided via the screens depicted in FIGS. 9-17.

FIG. 26 depicts a non-limiting example of a block service screen 2600that may be presented to a user in response to the selection of theblock service option 2530 (FIG. 25). Block service menu 2610 includes aprogram type option 2620, a channel type option 2630, and a channelidentity option 2640. The block service options 2620, 2630, and 2640 maybe used to configure the DHCT 200 to block selected service instancetypes, television service types, and television service identities,respectively. In one embodiment, the selection screens that arepresented in response to the selection of option 2620, 2630, or 2640 aresimilar to selection screens 1800 (FIG. 18), 800 (FIG. 8), and 2000(FIG. 20), respectively. In this manner, a user may block certaintelevision services based on their service instance content, their type,or their identity. The block service screen 2600 may, in anotherembodiment, contain different and/or additional options such as, forexample, an option to block all television services or an option toblock television services carrying a certain service instant. Serviceblocking settings may be implemented continuously or only during certaintime periods as determined by user input such as, for example, asprovided via the screens depicted in FIGS. 9-17.

FIG. 27 is a flow chart depicting a non-limiting example of a servicenavigation routine 2700 for blocking a television service. The routine2700 may be part of the navigator application 360 (FIG. 3) and may beinitiated in response to the DHCT 200 (FIG. 2) receiving user inputrequesting a certain television service. The user input requesting acertain television service may be provided via, for example, the numberpad 450, or via the selection of a television service that is listed inan IPG. After the routine 2700 is initiated in step 2701, the routine2700 determines in step 2702 if the requested television service isblocked during the current time period. A television service may beblocked in response to receiving user input requesting that one or moretelevision services be blocked during one or more time periods. Suchuser input may be provided via, for example, one or more of the screensdepicted in FIGS. 8-20, 25, and 26, and may include information thatdirectly or indirectly identifies television services that are to beblocked or excluded. A television service may be indirectly identifiedbased on its type or based on the service instance or type of serviceinstance that it is providing.

If the requested television service is not blocked, then the routineinitiates in step 2703 the provision of the requested television serviceto the user and terminates in step 2704. If, however, the televisionservice is blocked, then the routine initiates the presentation of apersonal identification number (PIN) entry screen to the user. The PINentry screen may prompt the user to enter the required PIN by stating,for example, “Please enter your PIN in order to have access to thistelevision service.” The routine 2700 then determines in step 2706 ifthe PIN entered by the user is valid by comparing the entered PIN with aPIN previously stored in memory. If the PIN entered by the user isinvalid, then the routine 2700 initiates in step 2707 the provision of amessage notifying the user that the entered PIN is invalid and thenterminates in step 2708. If, however, the PIN entered by the user isvalid, then the routine 2700 initiates in step 2709 the provision of therequested television service to the user and terminates in step 2708. Inone embodiment, a PIN entry screen is only presented during time periodsin which a requested service is not blocked. During a time period inwhich a service is blocked, the service is not presented to a user. Inyet another embodiment, service instance information associated with ablocked service is disabled from being accessed from IPG database 375and consequently from being presented to a user.

FIG. 28 is a flow chart depicting a non-limiting example of a DHCTactivation routine 2800 for activating a DHCT 200 (FIG. 2). The routine2800 may be part of the operating system 340 (FIG. 3) and may beinitiated in response to the DHCT 200 (FIG. 2) receiving user inputrequesting that the DHCT 200 be activated. The user input requestingactivation of the DHCT may be provided via, for example, a power button401. After the routine 2800 is initiated in step 2801, the routine 2800determines in step 2802 if the DHCT 200 is scheduled to be inactiveduring the current time period. A DHCT 200 may be scheduled to beinactive in response to user input that may have been provided via, forexample, one or more of the screens depicted in FIGS. 9-17 and 25.

If the DHCT 200 is not scheduled to be inactive, then the routine 2800initiates in step 2803 the activation of the DHCT 200 thereby allowinguser access to one or more television services. The routine 2800 thenterminates in step 2804. If, however, the DHCT 200 is scheduled to beinactive, then the routine initiates the presentation of a personalidentification number (PIN) entry screen to the user. The routine 2800then determines in step 2806 if a PIN entered by the user is valid bycomparing the entered PIN with a PIN previously stored in memory. If thePIN entered by the user is invalid, then the routine 2800 initiates instep 2807 the provision of a message notifying the user that the enteredPIN is invalid and then terminates in step 2808. If, however, the PINentered by the user is valid, then the routine 2800 initiates in step2809 the activation of the DHCT 200 and terminates in step 2808.

FIG. 29A depicts a non-limiting example of a layout for a preferenceentry screen 2900. The preference entry screen 2900 may be used to inputuser preferences for selected time periods, and includes a dayindication area 2901, a time area 2902, a viewing parameter area 2904,and a preference entry area 2906. The day indication area 2901 is fordisplaying the day or group of days that the preference entry screen2900 applies to. For example, the day indication area 2901 may be usedto display one of the following days or group of days: Monday, Tuesday,Wednesday, Thursday, Friday, Saturday, Sunday, Monday through Friday,Saturday & Sunday. The time area 2902 includes time slots 2903. Eachtime slot is for displaying a time period that is part of the day(s)indicated in day indication area 2901. Each time slot may cover, forexample, a half-hour period, a one hour period, a two hour period, athree hour period, a four hour period, a twelve hour period, etc. Theviewing parameter area 2904 contains a list of viewing parameters suchas for example, television services, television service types, serviceinstances, or service instance types. Examples of television servicesinclude, among others, ABC, NBC, CBS, CNN, and ESPN, etc. Examples oftelevision service types include, among others, broadcast, sports, news,shopping, adult, foreign, pay-per-view (PPV), video-on-demand (VOD),etc. Examples of service instances include, among others, the televisionprograms Friends, Frasier, Will & Grace, and Headline News (HLN), etc.Examples of service instance types include, among others, sit-com, newsprogram, football game, etc. Preference entry area 2906 includespreference entry fields 2907 for entering user preferences. A user mayenter a user preference by using, for example, the remote control 400.An optional instruction area 2909 may be used to provide instructions onusing the preference entry screen 2900.

FIG. 29B depicts a non-limiting example of a preference entry screen2910 that may be used to input user preferences regarding certain typesof service instances during various time periods. In this example, theviewing parameter area 2904 lists the following types of serviceinstances: News, sports, cartoons, sit-com, movie, music video, adult,talk show, and soap opera. The time area 2902 lists the following timeslots 2903: 9:00 a.m. to 12 p.m., 12:00 p.m. to 3:00 p.m., 3:00 p.m. to6:00 p.m., 6:00 p.m. to 9:00 p.m., and 9:00 p.m. to 12 a.m. In analternative embodiment, each time slot 2903 may cover a shorter or alonger time period. In yet another embodiment, time slots in apreference entry screen may cover time periods of varying duration. Forexample, a time slot covering a time period when users are more likelyto watch television (e.g., 8:00 p.m. to 8:30 p.m.) might have a shorterduration (half-an hour) than a time slot covering a time period whenusers are less likely to watch television (e.g., a single time slotcovering the time period between 2:00 a.m. and 6:00 a.m.).

The day indication area 2901 indicates that the preference entry screen2910 applies for Monday through Friday. The preference entry area 2906includes a highlighted preference entry field 2911 which may be used toenter a user's preference concerning the corresponding viewing parameterand time slot. A user may toggle the state of a highlighted preferenceentry field or may designate a different entry field as the highlightedentry field by activating designated buttons on the remote control 400.For example the user may activate the select button 420 to toggle thestate of a highlighted entry field and may activate one of the arrowbuttons 410 to highlight a different field.

FIG. 29C depicts a non-limiting example of a preference entry screen2920 that illustrates one possible approach for indicating userpreferences. In this example, the preference entry area 2906 includes apromote entry 2921 and a block entry 2922 that reflect user input. Thepromote entry 2921 indicates that the user's preference is to promotetalk show programs 2923 during the 9:00 a.m. to 12:00 p.m. time slot2924. The block entry 2922 indicates that the user's preference is toblock cartoon programs 2925 during the 9:00 a.m. to 12:00 p.m. time slot2924. In this manner, the user can specify what is to be included andexcluded for certain time periods. A television service may be promotedin several ways. For example, a television service may be promoted viaan IPG by being listed ahead of other television services and/or bybeing more conspicuously displayed. A television service may also bepromoted by being presented to a user either “automatically” or inresponse to the DHCT 200 receiving user input (e.g., corresponding to CH+/− key 440) requesting a television service.

As indicated above, a user may use the remote control device 400 tohighlight any preference entry field in the preference entry area 2906,and to then change the highlighted entry field. Of course, manyalternative approaches for receiving user preferences may be usedincluding, for example, receiving text input via a keyboard requestingthat the DHCT 200 block or promote a certain viewing parameter during acertain time period. The text input may state, for example, “blockcartoons from 9 a.m. to 12 p.m.” The DHCT 200 may then interpret andimplement the request based on predefined standards.

FIG. 30A is a block diagram depicting a non-limiting example of apreference tracking database 3000. The preference tracking database 3000is stored in DRAM 304 (FIG. 3) and comprises data entries 3006corresponding to respective viewing parameters 3004 and to respectivetime periods 3002. For example, data entry 3007 is a preference scorethat corresponds to viewing parameter 3008 and to time period 3009.Viewing parameters 3004 may represent, for example, television services,television service types, service instances, service instance types,service instance ratings, or other service instance informationattributes. Each of time periods 3002 may represent, for example, a timeperiod during a day (e.g., 1:00 p.m. to 2:00 p.m.), a day or days of theweek (e.g., Monday), a day of the year (e.g., January 1), or a month(e.g., January). Therefore, in one possible embodiment, the preferenceengine 390 may use multiple preference tracking databases, where eachtable keeps track of one type of viewing parameter in relation to onetype of time period. In an alternative embodiment, a tracking table maykeep track of two or more types of viewing parameters in relation to twoor more types of time periods.

FIG. 30B is a block diagram depicting a non-limiting example of apreference tracking database 3010 where the viewing parameters 3004represent television services and the time periods 3002 represent timeperiods during a day. Television services in this example include thetelevision channels ABC, CBS, CNN, NBC, PBS, FOX, MTV, ESPN2, and ESPN.Although not shown in FIG. 30B, preference tracking database 3010 mayinclude additional and/or different television services. In analternative embodiment, television services may be tracked based ontheir television service numbers or based on some other serviceidentification name or number. The time periods 3002 in this examplerepresent hourly time periods such as 1 p.m. to 2 p.m. 3015, 2 p.m. to 3p.m. 3016, and 3 p.m. to 4 p.m. 3017. In an alternative embodiment, eachof the time periods 3002 may represent a fraction of an hour or a timeperiod greater than an hour. The data entries 3006 comprises scores thatrepresent a duration and/or frequency that a television service isprovided to during the time periods 3002. The scores 3011, 3012, and3013, for example, correspond to time periods 3015, 3016, and 3017,respectively, and to the television service ESPN 3014. In a hypotheticalsituation, a user is provided with a Green Bay Packers NFL football gameon the ESPN television service 3014 between 1 p.m. and 4 p.m. on aSunday afternoon in the month of January. Based on this hypotheticalsituation, the preference engine 390 would increment each of the scores3011, 3012, and 3013 by a certain value that depends on the scoringsystem being used. In one embodiment, the preference engine 390increments a score by a value that is equal to the time that the DHCT200 provides a service having a respective viewing parameter. Therefore,in such an embodiment, the scores 3011, 3012, and 3013 may each beincremented by a value equal to 1 point where each point corresponds toone hour. In an alternative embodiment, scores are incremented by valuesthat are proportional or correlated to the times and/or frequency thatthe DHCT 200 provides a service having respective viewing parameters. Aperson with ordinary skill in the art would recognize that there aremany equivalent methods of tracking the extent to which a DHCT providesservices having certain viewing parameters.

FIG. 30C is a block diagram depicting a non-limiting example of apreference tracking database 3020 where the viewing parameters 3004represent types of television services and the time periods 3002represent days of the week. The types of television services in thisexample include broadcast, premium, movie, music, foreign, shopping,children's, adult, and sports. Although not shown in FIG. 30B,preference tracking database 3020 may keep track of additional and/ordifferent types of television services such as for example, weather andnews services. Each of the time periods 3002 in this example representsa day of the week (e.g., Sunday, Monday, etc.). In an alternativeembodiment, each of the time periods 3002 may represent a combination ofdays such as, for example, Monday through Friday or Saturday and Sunday.Continuing with the hypothetical example discussed in reference to FIG.30B where the DHCT 200 presents an NFL game, the score 3021 may beincremented by 3 points to account for the DHCT 200 being tuned to asports television service for 3 hours on a Sunday.

FIG. 30D is a block diagram depicting a non-limiting example of apreference tracking database 3030 where the viewing parameters 3004represent television instances and the time periods 3002 representmonths. The television instances represented in this example include thetelevision programs ABC News, Dateline, Friends, Frasier, Cheers,Headline News, ER, Days of Our Lives, and Green Bay Packers (footballgames). Although not shown in FIG. 30B, preference tracking database3030 may keep track of additional and/or different television instancessuch as for example, The Cosby Show, The Love Boat, MASH, etc. Each ofthe time periods 3002 in this example represents a month of the year(e.g., January, February, etc.). Continuing with the hypotheticalexample discussed in reference to FIG. 30B where the DHCT 200 presents aGreen Bay Packers NFL game, the score 3031 may be incremented by 3points to account for the DHCT 200 being tuned to a sports service for 3hours in January.

FIG. 30E is a block diagram depicting a non-limiting example of apreference tracking database 3040 where the viewing parameters 3004represent types of television instances and the time periods 3002represent days of the week. The types of television instancesrepresented in this non-limiting example include sit-coms, soap operas,documentaries, NBA games, news, movies, cartoons, MLB games, and NFLgames. Although not shown in FIG. 30B, preference tracking database 3040may keep track of additional and/or different types of televisioninstances such as, for example, PGA games, NHL games, religiousprograms, adult programs, etc. Each of the time periods 3002 in thisexample represents a day of the week (e.g., Sunday, Monday, etc.).Continuing with the hypothetical example discussed in reference to FIG.30B where the DHCT 200 presents a Green Bay Packers NFL game, the score3041 may be incremented by 3 points to account for the DHCT 200 beingtuned to an NFL game for 3 hours on a Sunday.

Although the preference tracking databases depicted in FIGS. 30B through30E track certain combinations of viewing parameters 3004 and timeperiods 3002, additional preference tracking databases that trackdifferent combinations of viewing parameters 3004 and time periods 3002may also be used. Other combinations of tracked parameters include, forexample, types of television instances that are tracked in relation tothe time of day. In an alternative embodiment a multidimensionalpreference tracking database may be used to keep track of multiple typesof viewing parameters and multiple types of time periods. Each entry ina multidimensional table may identify one or more of the followinginformation related to the video signal tuned to by a DHCT: thetelevision instance, the type of television instance, the televisionservice, the type of television service, service instance rating,service instance content attributes, the time period that the DHCTprovides a television service instance, the time period that the DHCTprovides a television service, the time of day, the day of the week, thedate, and the calendar month. For example, continuing with thehypothetical example discussed in FIGS. 30B-30E where the DHCT 200presents an NFL game, a corresponding entry in a multidimensional tablemight contain the following information: Green Bay Packers, NFL, ESPN,sports, Sunday, 1 p.m. to 4 p.m., and January. The information in amultidimensional table may be processed to determine user preferencesregarding various viewing parameters and viewing periods.

In one embodiment, an overall score for a plurality of trackedparameters and multi-dimensional tracked associations may be obtained byprocessing the individual scores as a weighted linear combination ofscores for the tracked viewing parameters and/or associations. Likewise,a weighted non-linear combination of the tracked viewing parameters andassociations can be implemented. Furthermore, the weights associatedwith each tracked parameter and/or associations in the combining ofscores into an overall score may be found through a training procedureand thereafter refined throughout the course of time by the employmentof statistical classification methods or statistical analysis methods.Artificial intelligence technology such as inference engines,syntactical analysis, and/or fuzzy set theory concepts may also beemployed in the initial estimate of the weights and their refinementsfor the purpose of introducing non-linearity and/or for the purpose ofdiscarding or including parameters in the computation of an overallscore during certain time periods.

FIG. 31 is a flow chart depicting a non-limiting example of a userpreference tracking routine 3100 that can be used to track a user'sviewing preferences. The routine 3100 may be part of the preferenceengine 390 (FIG. 3) and may be initiated in response to the DHCT 200(FIG. 2) providing a television service. After the routine 3100 isinitiated in step 3101, the routine initiates a timer in step 3102, asprovisioned by the timer 393 (FIG. 3). The timer is used to keep trackof the length of time that a user is provided with a particulartelevision service or instance. The routine 3100 then determines in step3103 if the DHCT 200 is still providing the same service instance thatit was providing at the time that the timer was last initiated. If theDHCT 200 is still providing the same service instance, then the routine3100 determines in step 3104 if a timeline that separates trackingperiods has been crossed. If a timeline has not been crossed, then theroutine returns to step 3103.

If the routine 3100 determines in step 3104 that a timeline has beencrossed or determines in step 3103 that the DHCT 200 is not stillproviding the same service instance, then in step 3106 the routine 3100reads the timer that was initiated in step 3102. The routine thenincrements a value in one or more preference tracking databasescorresponding to a viewing parameter of a service instance that the DHCT200 was providing at the time that the timer was initiated.

The value in the preference tracking database(s) may be incremented byan amount equal, proportional, or correlated to the time periodreflected by the timer at the time that the timer is stopped. In oneembodiment, a value in a preference tracking database is onlyincremented if the time period reflected by the timer exceeds a certainthreshold. In another embodiment, a value in a preference trackingdatabase is not incremented unless the DHCT 200 had received user inputwithin a certain time window. Requiring user input within a certain timewindow ensures that the preference tracking database is not incrementedwhen the DHCT 200 is providing a television instance that no one iswatching.

After the routine increments a value in a preference tracking databasein step 3107, the routine determines in step 3108 if the DHCT 200 isproviding a television instance. If the DHCT 200 is not providing atelevision instance, then the routine terminates in step 3109. If,however, the DHCT 200 is providing a television instance, then theroutine 3100 returns to step 3102.

FIG. 32 is a flow chart depicting steps taken in providing a user withan IPG in response to user input. The user input may be provided via theactivation of a remote control key such as, for example, the guide key480. After the DHCT 200 receives user input requesting an IPG, asindicated in block 3201, the IPG application 370 (FIG. 3) in step 3202uses a preference look-up table 392 (FIG. 3) to determine whichtelevision service listings to include in an IPG. Then, in step 3203,the navigator provides the user with an IPG that contains televisionservice listings that are in accordance with a preference look-up table392.

As a non-limiting example, if the DHCT 200 receives user input at 8:15p.m. requesting an IPG, then the IPG application 370 may use thepreference look-up table shown in Table 1 to determine that during thecurrent time period the user's likely preference is sit-com programs,and as a result provides the user with an IPG that either only liststelevision services currently carrying a sit-com program or with an IPGwhere the television service listings are sorted such that televisionservices currently carrying a sit-com program are promoted. A televisionservice may be promoted in an IPG by being listed ahead of othertelevision services and/or by being more conspicuously displayed. Aftera user is provided with an IPG, the user may then request to see adesired service instance by selecting it via, for example, a remotecontrol device.

In an alternative embodiment, the IPG application 370 may take intoaccount user preferences for the entire time period covered by IPGlistings and may thus promote service listings corresponding to servicesthat correspond to a preferred viewing parameter during any portion ofsuch time period. For example, if the time period covered by an IPGrequested by a user is 8:00 p.m. to 9:30 p.m., then the IPG may use alook-up table to determine user preferences for 8:00 p.m. to 9:30 p.m.The IPG may then provide the user with service listings that meetpreferred viewing parameter(s) corresponding to 8:00 p.m. to 9:30 p.m.based on a preference look-up table 392 or a preference trackingdatabase 391.

In one embodiment, a switch 490 may be used to dictate that userpreferences will be used in determining which television servicelistings to include in an IPG. If a user provides user input requestingan IPG when the switch 490 is in a first position (e.g., up), then theIPG application 370 would provide the user with a default IPG that doesnot take into account user preferences. If, however, a user providesuser input requesting an IPG when the switch 490 is in a second position(e.g., down), then the IPG application 370 would provide the user withan IPG that takes into account user preferences.

FIG. 33 is a flow chart depicting steps taken in providing a user, inresponse to user input, with a television service that is different fromthe currently featured television service. The user input may beprovided via the activation of a service navigation key such as, forexample, the channel +/− key 440 (FIG. 4). After the DHCT 200 receivesuser input requesting a different television service, as indicated inblock 3301, the navigator application 360 in step 3302 uses a preferencelook-up table 392 to determine which television service to provide tothe user. Then, in step 3303, the navigator provides the user with atelevision service that is in accordance with the preference look-uptable.

As a non-limiting example, if the DHCT 200 receives user inputcorresponding to the channel +/− key 440 at 8:15 p.m., then thenavigator application 360 may use the preference look-up table shown inTable 1 to determine that during the current time period the user'slikely preference is sit-com programs, and as a result may provide theuser with a television service that is currently carrying a sit-comprogram. If multiple television services meet a criterion in apreference look-up table, then one of these services may be selectedbased on one or more additional criteria such as, for example, servicenumber.

In one embodiment, a switch 490 may be used to dictate whether thenavigator application 360 will use a preference look-up table 392 indetermining which television service to provide to the user. If the DHCT200 receives user input corresponding to the channel +/− key 440 whenthe switch is in a first position, then the navigator application 360would provide the user with the next television service “up” or “down”from the currently tuned television service. If, however, the DHCT 200receives user input corresponding to the channel +/− key 440 when theswitch is in a second position, then the navigator application 360 wouldprovide the user with a television service based on information from apreference look-up table.

In another embodiment of the invention, steps 3302 and 3303 areimplemented without the occurrence of step 3301. In this embodiment, theDHCT 200 provides a user with a television service “automatically,” andnot in response to a specific request for the television service. Forexample, after a first service instance is provided to a user, the DHCT200 may automatically tune to a second service instance that is inaccordance with a predetermined user preference.

FIG. 34 is a flow chart depicting steps taken in providing a user with aPVR list in response to user input. The user input may be provided viathe activation of a remote control key such as, for example, the PVR key495. After the DHCT 200 receives user input requesting a PVR list, asindicated in block 3401, the PVR application 355 in step 3402 uses apreference look-up table 392 to determine which recording listings toinclude in a PVR list. Then, in step 3403, the navigator provides theuser with a PVR list that contains recording listings that are inaccordance with the preference look-up table.

As a non-limiting example, if the DHCT 200 receives user input at 8:15p.m. requesting a PVR list, then the PVR application 355 may use thepreference look-up table shown in Table 1 to determine that during thecurrent time period the user's likely preference is sit-com programs,and, as a result, provides the user with a PVR list that either onlylists recordings comprising a sit-com program or with a PVR list wherethe recording listings are sorted such that recordings comprising asit-com program are promoted. A recording may be promoted in a PVR listby being listed ahead of other recordings and/or by being moreconspicuously displayed. After a user is provided with a PVR list, theuser may then request to see a desired recording by selecting thecorresponding listing in the PVR list. The following is an example of aPVR list that only lists recordings comprising a sit-com program: TABLE2 Example of a PVR list that only lists sit-com recordings TitleRecording Time Friends 60 minutes Will & Grace 30 Minutes Just Shoot Me30 Minutes Cheers 30 Minutes Three Sisters 30 Minutes Frasier 30 MinutesWings 30 Minutes Mork and Mindy 30 Minutes Benson 30 Minutes

In one embodiment, a switch 490 may be used to dictate whether the PVRapplication 355 will use a preference look-up table 392 in determiningwhich recordings to include in a PVR list. If a user provides user inputrequesting a PVR list when the switch 490 is in a first position, thenthe PVR application 355 would provide the user with a PVR list that doesnot take into account user preferences. If, however, a user providesuser input requesting a PVR list when the switch 490 is in a secondposition, then the PVR application 355 would provide the user with a PVRlist that takes into account user preferences based on, for example, apreference look-up table 392.

FIG. 35 is a flow chart depicting a non-limiting example of steps takenby the DHCT 200 in recording a television service based on userpreferences. Each of these steps 3501-3503 may be implemented by the PVRapplication 355, by the preference engine 390, or by some otherdesignated application. In a preferred embodiment, steps 3501-3503 areimplemented by the PVR application 355. In step 3501, the PVRapplication selects one or more preferred viewing parameters that areassociated with a certain time period. The preferred viewing parametersmay be selected based on data from a preference tracking database 391 orfrom a preference look-up table 392 (FIG. 3). In step 3502, the PVRapplication 355 selects a television service that corresponds to one ormore preferred viewing parameter(s). In one embodiment, the PVRapplication selects a television service that corresponds to thegreatest number of preferred viewing parameters that are associated withthe certain time period. For example, if the preferred viewingparameters corresponding to an 8:00 p.m. to 8:30 p.m. time period aresit-com (service instance type), Friends (service instance), and NBC(service), and if NBC is scheduled to be broadcasting Friends duringthat time period, then NBC, which is consistent with all three viewingparameters during the time period, would be selected over othertelevision services that may be carrying Friends or some other sit-comprogram during such time period. In step 3503, the PVR applicationrecords or schedules the recording of the selected television serviceduring the certain time period.

In one embodiment, preference-related data that are used in determininguser preferences are stored in DRAM 304 of the DHCT 200. Such data mayinclude parameters associated with the customization of viewinginformation specified by a subscriber during a customization procedure,look-up tables that may be generated pursuant to such parameters,parameters associated with and/or supporting the execution of thepreference engine 390, preference look-up tables 392, and preferencetracking databases 391. In addition, some or all of this data may alsobe stored in either read-write non-volatile memory of DHCT 200 (e.g.,flash memory 302) and/or in an application server at the headend 110 tofacilitate recovery of the data during a power outage or a rebootoperation. If DHCT 200 has a local storage device, either internally orexternally connected via a communication port or local storageinterface, it can be used to store this data rather than employing anapplication server at headend 110.

Regardless of where preference-related data is stored, a subset of thepreference-related data may be stored in read-write non-volatile memoryof DHCT 200 by configuration manager 397. The subset of preferencerelated data may be used to determine whether configuration orpreference information exists for each respective TV controlfunctionality and/or application in the event that DHCT 200 experiencesa power outage period. The subset of preference-related data may alsoinclude an indication as to whether any configured preferences exist(which may be indicated by a single bit of non-volatile memory), andinformation such as a directory path or user identification for wherepreference-related data can be retrieved.

It should be emphasized that the above-described embodiments of thepresent invention, particularly any “preferred embodiments”, are merelypossible examples, among others, of the implementations, setting forth aclear understanding of the principles of the invention. Manymodifications may be made to the above-described embodiments of theinvention without departing substantially from the principles of theinvention. All such modifications are intended to be included hereinwithin the scope of the disclosure and present invention and protectedby the following claims.

1. A method for providing television services by a set-top terminal(STT), the method comprising: defining a time period based on a starttime and end time entered by a user at the STT; receiving one or moreparameters corresponding to a user preference; providing a first resultin accordance with the user preference if a request for televisionfunctionality is received during the defined time period; and providinga second result if the request for the television functionality isreceived outside the defined time period.
 2. The method of claim 1,further comprising monitoring the user preference by tracking the one ormore parameters associated with the services provided by the STT.
 3. Themethod of claim 2, wherein tracking further comprises storing the one ormore parameters in memory on the basis of time of viewing servicepresentations of the services having the one or more parameters.
 4. Themethod of claim 2, wherein tracking further comprises tracking afrequency that the STT presents the services having the one or moreparameters, tracking a duration that the STT presents the serviceshaving the one or more parameters, or tracking the frequency and theduration that the STT presents the services having the one or moreparameters.
 5. The method of claim 1, further comprising providing ascore to each of the one or more parameters based on time ofpresentation of services by the STT, the score correlated to a frequencythat the STT presents the services having the one or more parameters, aduration that the STT presents the services having the one or moreparameters, or a combination of frequency and duration that the STTpresents the services having the one or more parameters.
 6. The methodof claim 5, further comprising determining the user preference based onthe score for each of the one or more parameters.
 7. The method of claim1, wherein providing the first result comprises altering functionalityof a remote control key.
 8. The method of claim 1, wherein the firstresult is only provided if a preference-adaptive mode is activated,wherein the preference adaptive mode is activated via a switch locatedon a remote control device.
 9. The method of claim 1, wherein providingthe first result comprises providing an interactive program guide (IPG)that does not provide information corresponding to a time slot ortelevision service that is not in accordance with the user preferenceand providing the second result comprises providing an IPG that providesinformation corresponding to the time slot or television service that isnot in accordance with the user preference.
 10. The method of claim 1,wherein providing the first result comprises providing an interactiveprogram guide (IPG) screen that provides information corresponding to atleast one television service that corresponds to the one or moreparameters.
 11. The method of claim 1, wherein providing the firstresult comprises promoting information corresponding to at least onetelevision service that corresponds to the one or more parameters in aninteractive program guide (IPG) screen, wherein promoting compriseslisting information corresponding to at least one television servicethat corresponds to the one or more parameters ahead of services that donot correspond to user preferences, listing information corresponding toat least one television service that corresponds to the one or moreparameters in a conspicuous manner, or a combination of both.
 12. Asystem for providing television services by a set-top terminal (STT),the system comprising: a memory with logic; and a processor configuredwith the logic to: define a time period based on a start time and endtime entered by a user at the STT, receive one or more parameterscorresponding to a user preference, provide a first result in accordancewith the user preference if a request for television functionality isreceived during the defined time period, and provide a second result ifthe request for the television functionality is received outside thedefined time period.
 13. The system of claim 12, wherein the processoris further configured with the logic to monitor the user preference bytracking the one or more parameters associated with the servicesprovided by the STT and storing the one or more parameters in the memoryon the basis of time of viewing service presentations of the serviceshaving the one or more parameters.
 14. The system of claim 13, whereinthe processor is further configured with the logic to track a durationthat the STT presents the services having the one or more parameters,track a frequency that the STT presents the services having the one ormore parameters, or track the duration and the frequency that the STTpresents the services having the one or more parameters.
 15. The systemof claim 12, wherein the processor is further configured with the logicto provide a score to each of the one or more parameters based on timeof presentation of services by the STT, the score correlated to afrequency that the STT presents the services having the one or moreparameters, a duration that the STT presents the services having the oneor more parameters, or a combination of frequency and duration that theSTT presents the services having the one or more parameters, wherein theprocessor is further configured with the logic to determine the userpreference based on the score for each of the one or more parameters,wherein the score for each of the one or more parameters changes overtime.
 16. The system of claim 12, wherein the processor is furtherconfigured with the logic to provide the first result of alteringfunctionality of a remote control key.
 17. The system of claim 12,further comprising a remote control device having a switch correspondingto a preference-adaptive mode, wherein the processor is furtherconfigured with the logic to alter the functionality of the remotecontrol key responsive to activation of a preference-adaptive mode. 18.The system of claim 12, wherein the processor is further configured withthe logic to provide the first result of providing an interactiveprogram guide (IPG) that does not provide information corresponding to atime slot or a television service that is not in accordance with theuser preference, wherein the processor is further configured with thelogic to provide the second result of providing an interactive programguide (IPG) that provides information corresponding to the time slot orthe television service that is not in accordance with the userpreference.
 19. The system of claim 12, wherein the processor is furtherconfigured with the logic to provide the first result of promotinginformation corresponding to at least one television service thatcorresponds to the one or more parameters in an interactive programguide (IPG) screen, wherein promoting comprises listing informationcorresponding to at least one television service that corresponds to theone or more parameters ahead of services that do not correspond to userpreferences, listing information corresponding to at least onetelevision service that corresponds to the one or more parameters in aconspicuous manner, or a combination of both.
 20. The system of claim12, wherein the processor is further configured with the logic toprovide one or more user interfaces that enable a user to define thetime period, the one or more user interfaces providing selectableoptions corresponding to time of day, day of week, date, multiple timebases, and holidays.